#include "asm/regdef.h"
#include "asm/asm.h"
#include "asm/context.h"
#include "inst_test.h"
#include "trap.h"
    .set noreorder
    .set noat 
    .global main 
    .text 

main:
    ###test inst
    TEST_MTLO(0xc10d76f1, 0xc10d76f1)
    TEST_MTLO(0x6a7f52c1, 0x6a7f52c1)
    TEST_MTLO(0xb96c12c0, 0xb96c12c0)
    TEST_MTLO(0x922cb737, 0x922cb737)
    TEST_MTLO(0xd8f877fc, 0xd8f877fc)
    TEST_MTLO(0x6fdf1878, 0x6fdf1878)
    TEST_MTLO(0x5f76d12d, 0x5f76d12d)
    TEST_MTLO(0x27c10798, 0x27c10798)
    TEST_MTLO(0x83c8378b, 0x83c8378b)
    TEST_MTLO(0x62bb439d, 0x62bb439d)
    TEST_MTLO(0x43078560, 0x43078560)
    TEST_MTLO(0xa39c0200, 0xa39c0200)
    TEST_MTLO(0xa15b59c0, 0xa15b59c0)
    TEST_MTLO(0x9010f9ac, 0x9010f9ac)
    TEST_MTLO(0x1a1018e9, 0x1a1018e9)
    TEST_MTLO(0x2481262b, 0x2481262b)
    TEST_MTLO(0xc969cb90, 0xc969cb90)
    TEST_MTLO(0xdbf1fb66, 0xdbf1fb66)
    TEST_MTLO(0x9a56cef0, 0x9a56cef0)
    TEST_MTLO(0x779142c4, 0x779142c4)
    TEST_MTLO(0x346ba966, 0x346ba966)
    TEST_MTLO(0x31781768, 0x31781768)
    TEST_MTLO(0x059ec06c, 0x059ec06c)
    TEST_MTLO(0xf8b4e6e0, 0xf8b4e6e0)
    TEST_MTLO(0xe7abdf10, 0xe7abdf10)
    TEST_MTLO(0x5876a580, 0x5876a580)
    TEST_MTLO(0x0f99f508, 0x0f99f508)
    TEST_MTLO(0x51d10180, 0x51d10180)
    TEST_MTLO(0x5fbfa69c, 0x5fbfa69c)
    TEST_MTLO(0x58797692, 0x58797692)
    TEST_MTLO(0x0f1bdeb0, 0x0f1bdeb0)
    TEST_MTLO(0xa64b98f4, 0xa64b98f4)
    TEST_MTLO(0x907eb570, 0x907eb570)
    TEST_MTLO(0x75cf8e5b, 0x75cf8e5b)
    TEST_MTLO(0xa5987b6d, 0xa5987b6d)
    TEST_MTLO(0x09680359, 0x09680359)
    TEST_MTLO(0x442c841e, 0x442c841e)
    TEST_MTLO(0x7d6ef3ac, 0x7d6ef3ac)
    TEST_MTLO(0xddd0e8d8, 0xddd0e8d8)
    TEST_MTLO(0xcd39e268, 0xcd39e268)
    TEST_MTLO(0xcfcc7012, 0xcfcc7012)
    TEST_MTLO(0x14a7a300, 0x14a7a300)
    TEST_MTLO(0xf6d0eafa, 0xf6d0eafa)
    TEST_MTLO(0x88652e00, 0x88652e00)
    TEST_MTLO(0x43f53fbf, 0x43f53fbf)
    TEST_MTLO(0x5862c2a8, 0x5862c2a8)
    TEST_MTLO(0x07f1333a, 0x07f1333a)
    TEST_MTLO(0x3c0109a9, 0x3c0109a9)
    TEST_MTLO(0xe78d7108, 0xe78d7108)
    TEST_MTLO(0x6fb5f934, 0x6fb5f934)
    TEST_MTLO(0xa25293e0, 0xa25293e0)
    TEST_MTLO(0x0cea5e2c, 0x0cea5e2c)
    TEST_MTLO(0xd21583a9, 0xd21583a9)
    TEST_MTLO(0x9974d2c0, 0x9974d2c0)
    TEST_MTLO(0x4be0de04, 0x4be0de04)
    TEST_MTLO(0xe202d688, 0xe202d688)
    TEST_MTLO(0x7721dd70, 0x7721dd70)
    TEST_MTLO(0xeea0eb80, 0xeea0eb80)
    TEST_MTLO(0x27ce2d80, 0x27ce2d80)
    TEST_MTLO(0x221210de, 0x221210de)
    TEST_MTLO(0xadfe2084, 0xadfe2084)
    TEST_MTLO(0x60c14900, 0x60c14900)
    TEST_MTLO(0xe709b380, 0xe709b380)
    TEST_MTLO(0xa25a3204, 0xa25a3204)
    TEST_MTLO(0x2ec2bd00, 0x2ec2bd00)
    TEST_MTLO(0x4926c711, 0x4926c711)
    TEST_MTLO(0x455c0b90, 0x455c0b90)
    TEST_MTLO(0x35f25570, 0x35f25570)
    TEST_MTLO(0xe450b640, 0xe450b640)
    TEST_MTLO(0x6d6757fa, 0x6d6757fa)
    TEST_MTLO(0x3f5e532c, 0x3f5e532c)
    TEST_MTLO(0xaaad7566, 0xaaad7566)
    TEST_MTLO(0xc9eed0e0, 0xc9eed0e0)
    TEST_MTLO(0x4e4e90f8, 0x4e4e90f8)
    TEST_MTLO(0xb7267010, 0xb7267010)
    TEST_MTLO(0x73dcd35f, 0x73dcd35f)
    TEST_MTLO(0xcabdea28, 0xcabdea28)
    TEST_MTLO(0x368d32c0, 0x368d32c0)
    TEST_MTLO(0x9efd47c0, 0x9efd47c0)
    TEST_MTLO(0xf2fb20bc, 0xf2fb20bc)
    TEST_MTLO(0x7eb81a10, 0x7eb81a10)
    TEST_MTLO(0x5feec790, 0x5feec790)
    TEST_MTLO(0x660ad054, 0x660ad054)
    TEST_MTLO(0xa1727138, 0xa1727138)
    TEST_MTLO(0xc4853f3e, 0xc4853f3e)
    TEST_MTLO(0x9d8f8f46, 0x9d8f8f46)
    TEST_MTLO(0xd86c4628, 0xd86c4628)
    TEST_MTLO(0x0b406640, 0x0b406640)
    TEST_MTLO(0xd1cdf558, 0xd1cdf558)
    TEST_MTLO(0x725ef499, 0x725ef499)
    TEST_MTLO(0x0a78947a, 0x0a78947a)
    TEST_MTLO(0x40206560, 0x40206560)
    TEST_MTLO(0x3fd41a90, 0x3fd41a90)
    TEST_MTLO(0x61dff1be, 0x61dff1be)
    TEST_MTLO(0x3cb52e45, 0x3cb52e45)
    TEST_MTLO(0x9cdf1840, 0x9cdf1840)
    TEST_MTLO(0xaa323fe3, 0xaa323fe3)
    TEST_MTLO(0xaf6c8000, 0xaf6c8000)
    TEST_MTLO(0x7a62436c, 0x7a62436c)
    TEST_MTLO(0xd5c88536, 0xd5c88536)
    TEST_MTLO(0xdcd33c05, 0xdcd33c05)
    TEST_MTLO(0x6d9e9ad4, 0x6d9e9ad4)
    TEST_MTLO(0xfa2d291c, 0xfa2d291c)
    TEST_MTLO(0x7623c300, 0x7623c300)
    TEST_MTLO(0x9f0187e7, 0x9f0187e7)
    TEST_MTLO(0x05339b47, 0x05339b47)
    TEST_MTLO(0xe218cca0, 0xe218cca0)
    TEST_MTLO(0xd7636e61, 0xd7636e61)
    TEST_MTLO(0x3de048f8, 0x3de048f8)
    TEST_MTLO(0x8f2bee38, 0x8f2bee38)
    TEST_MTLO(0x9d605711, 0x9d605711)
    TEST_MTLO(0xa96edee1, 0xa96edee1)
    TEST_MTLO(0x2b8b6d80, 0x2b8b6d80)
    TEST_MTLO(0x60646124, 0x60646124)
    TEST_MTLO(0xa6bec718, 0xa6bec718)
    TEST_MTLO(0x10780a80, 0x10780a80)
    TEST_MTLO(0x57dc1f16, 0x57dc1f16)
    TEST_MTLO(0xc3d01ea0, 0xc3d01ea0)
    TEST_MTLO(0x70a61f92, 0x70a61f92)
    TEST_MTLO(0xc29c7920, 0xc29c7920)
    TEST_MTLO(0xbc7aff48, 0xbc7aff48)
    TEST_MTLO(0xb79d19a8, 0xb79d19a8)
    TEST_MTLO(0xf1484420, 0xf1484420)
    TEST_MTLO(0x69205bf0, 0x69205bf0)
    TEST_MTLO(0xbdec7d1c, 0xbdec7d1c)
    TEST_MTLO(0xe1ce4750, 0xe1ce4750)
    TEST_MTLO(0x63d05f88, 0x63d05f88)
    TEST_MTLO(0xc44cd8c0, 0xc44cd8c0)
    TEST_MTLO(0x55bdd470, 0x55bdd470)
    TEST_MTLO(0xb70ebdf2, 0xb70ebdf2)
    TEST_MTLO(0x617dee1e, 0x617dee1e)
    TEST_MTLO(0x46f947e4, 0x46f947e4)
    TEST_MTLO(0xde5a0ca3, 0xde5a0ca3)
    TEST_MTLO(0xd1fb0a10, 0xd1fb0a10)
    TEST_MTLO(0x291f81e8, 0x291f81e8)
    TEST_MTLO(0x22f9dafe, 0x22f9dafe)
    TEST_MTLO(0x14ada52c, 0x14ada52c)
    TEST_MTLO(0x80247a80, 0x80247a80)
    TEST_MTLO(0xcd2863c0, 0xcd2863c0)
    TEST_MTLO(0xb1a08d7c, 0xb1a08d7c)
    TEST_MTLO(0x6f7515ec, 0x6f7515ec)
    TEST_MTLO(0x4e035a34, 0x4e035a34)
    TEST_MTLO(0xec7087e5, 0xec7087e5)
    TEST_MTLO(0xe7dbcb60, 0xe7dbcb60)
    TEST_MTLO(0xe58091f4, 0xe58091f4)
    TEST_MTLO(0x5a9104a0, 0x5a9104a0)
    TEST_MTLO(0x7d140682, 0x7d140682)
    TEST_MTLO(0xdceb6950, 0xdceb6950)
    TEST_MTLO(0x4511b208, 0x4511b208)
    TEST_MTLO(0xf34dc984, 0xf34dc984)
    TEST_MTLO(0xe2152930, 0xe2152930)
    TEST_MTLO(0x2ca63aa0, 0x2ca63aa0)
    TEST_MTLO(0xaa58aaf8, 0xaa58aaf8)
    TEST_MTLO(0x59f0d4c0, 0x59f0d4c0)
    TEST_MTLO(0x1f8ad31a, 0x1f8ad31a)
    TEST_MTLO(0xcc81d4b7, 0xcc81d4b7)
    TEST_MTLO(0x329dcb30, 0x329dcb30)
    TEST_MTLO(0x7ca62fd0, 0x7ca62fd0)
    TEST_MTLO(0x93faad78, 0x93faad78)
    TEST_MTLO(0x82713960, 0x82713960)
    TEST_MTLO(0x13be36f0, 0x13be36f0)
    TEST_MTLO(0x578d90c0, 0x578d90c0)
    TEST_MTLO(0x5084f9c8, 0x5084f9c8)
    TEST_MTLO(0x9b354320, 0x9b354320)
    TEST_MTLO(0x27034740, 0x27034740)
    TEST_MTLO(0x716f02dc, 0x716f02dc)
    TEST_MTLO(0x1fc92e60, 0x1fc92e60)
    TEST_MTLO(0xb2fad4e0, 0xb2fad4e0)
    TEST_MTLO(0x8647273f, 0x8647273f)
    TEST_MTLO(0x3ee2e33c, 0x3ee2e33c)
    TEST_MTLO(0xeae97850, 0xeae97850)
    TEST_MTLO(0x68f00140, 0x68f00140)
    TEST_MTLO(0x30f585e0, 0x30f585e0)
    TEST_MTLO(0x64d43ee8, 0x64d43ee8)
    TEST_MTLO(0x1700565c, 0x1700565c)
    TEST_MTLO(0xefd20ca0, 0xefd20ca0)
    TEST_MTLO(0xa42e4ca4, 0xa42e4ca4)
    TEST_MTLO(0x1cc16ab8, 0x1cc16ab8)
    TEST_MTLO(0x12716a00, 0x12716a00)
    TEST_MTLO(0x516e9dd0, 0x516e9dd0)
    TEST_MTLO(0x40b9e420, 0x40b9e420)
    TEST_MTLO(0x663e53c4, 0x663e53c4)
    TEST_MTLO(0x1e52da16, 0x1e52da16)
    TEST_MTLO(0x3332b636, 0x3332b636)
    TEST_MTLO(0x733ddc00, 0x733ddc00)
    TEST_MTLO(0x6e0a7e0f, 0x6e0a7e0f)
    TEST_MTLO(0x843d8d6e, 0x843d8d6e)
    TEST_MTLO(0xbaf0e236, 0xbaf0e236)
    TEST_MTLO(0x8416a092, 0x8416a092)
    TEST_MTLO(0x11fa2c80, 0x11fa2c80)
    TEST_MTLO(0x5330fcd8, 0x5330fcd8)
    TEST_MTLO(0x123e3dbd, 0x123e3dbd)
    TEST_MTLO(0xdf39f580, 0xdf39f580)
    TEST_MTLO(0xbc2c7318, 0xbc2c7318)
    TEST_MTLO(0xc4689c4d, 0xc4689c4d)
    TEST_MTLO(0x56efe74c, 0x56efe74c)
    TEST_MTLO(0xfac2f060, 0xfac2f060)
    TEST_MTLO(0x1c7ee058, 0x1c7ee058)
    TEST_MTLO(0xa0be59c0, 0xa0be59c0)
    TEST_MTLO(0xee707bd0, 0xee707bd0)
    TEST_MTLO(0x00000000, 0x00000000)
    HIT_GOOD_TRAP

inst_error:
    HIT_BAD_TRAP